From 10e8e7d27a809d89c5fe4b1d85ba65c8c71bdf67 Mon Sep 17 00:00:00 2001 From: Jan Arne Petersen Date: Sat, 24 May 2008 23:32:13 +0000 Subject: [PATCH] Use type of the correct column (#529535). Add test. 2008-05-25 Jan Arne Petersen * gtk/gtkliststore.c: (list_store_text): Use type of the correct column (#529535). * tests/buildertest.c: (test_list_store): Add test. svn path=/trunk/; revision=20142 --- ChangeLog | 6 ++++ gtk/gtkliststore.c | 4 +-- tests/buildertest.c | 71 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4f18934ece..8a993cc232 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-05-25 Jan Arne Petersen + + * gtk/gtkliststore.c: (list_store_text): Use type of the correct + column (#529535). + * tests/buildertest.c: (test_list_store): Add test. + 2008-05-24 Matthias Clasen Bug 520989 – icon factory buildable too strict diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c index 3e56ef4b6e..b1e3ba5ee1 100644 --- a/gtk/gtkliststore.c +++ b/gtk/gtkliststore.c @@ -2253,7 +2253,7 @@ list_store_text (GMarkupParseContext *context, } if (!gtk_builder_value_from_string_type (data->builder, - data->column_types[i], + data->column_types[info->id], string, &data->values[i], &tmp_error)) @@ -2262,7 +2262,7 @@ list_store_text (GMarkupParseContext *context, tmp_error->domain, tmp_error->code, "Could not convert '%s' to type %s: %s\n", - text, g_type_name (data->column_types[i]), + text, g_type_name (data->column_types[info->id]), tmp_error->message); g_error_free (tmp_error); } diff --git a/tests/buildertest.c b/tests/buildertest.c index 45558eca54..b3214574ef 100644 --- a/tests/buildertest.c +++ b/tests/buildertest.c @@ -550,6 +550,31 @@ test_list_store (void) " " " " ""; + const char buffer3[] = + "" + " " + " " + " " + " " + " " + " " + " " + " " + " Doe" + " John" + " 25" + " " + " " + " 50" + " Dole" + " Johan" + " " + " " + " 19" + " " + " " + " " + ""; GtkBuilder *builder; GObject *store; GtkTreeIter iter; @@ -599,6 +624,52 @@ test_list_store (void) g_assert (age == 50); g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == FALSE); + builder = builder_new_from_string (buffer3, -1, NULL); + store = gtk_builder_get_object (builder, "liststore1"); + g_assert (gtk_tree_model_get_n_columns (GTK_TREE_MODEL (store)) == 3); + g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 0) == G_TYPE_STRING); + g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 1) == G_TYPE_STRING); + g_assert (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 2) == G_TYPE_INT); + + g_assert (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter) == TRUE); + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert (surname != NULL); + g_assert (strcmp (surname, "John") == 0); + g_free (surname); + g_assert (lastname != NULL); + g_assert (strcmp (lastname, "Doe") == 0); + g_free (lastname); + g_assert (age == 25); + g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == TRUE); + + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert (surname != NULL); + g_assert (strcmp (surname, "Johan") == 0); + g_free (surname); + g_assert (lastname != NULL); + g_assert (strcmp (lastname, "Dole") == 0); + g_free (lastname); + g_assert (age == 50); + g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == TRUE); + + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert (surname == NULL); + g_assert (lastname == NULL); + g_assert (age == 19); + g_assert (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter) == FALSE); + g_object_unref (builder); } -- 2.30.2